﻿using Puppy.Auditing;
using System;

namespace Puppy.Domain.Entities.Auditing
{
    [Serializable]
    public abstract class AuditedEntity : Entity, IAuditedObject
    {
        public virtual DateTime CreationTime { get; protected set; }

        public virtual DateTime? LastModificationTime { get; set; }
    }

    [Serializable]
    public abstract class AuditedEntity<TKey> : Entity<TKey>, IAuditedObject
    {
        public virtual DateTime CreationTime { get; protected set; }

        public virtual DateTime? LastModificationTime { get; set; }

        protected AuditedEntity()
        {

        }

        protected AuditedEntity(TKey id)
            : base(id)
        {

        }
    }
}
